package com.nuanshui.heatedloan.baseservice.facade;


import com.nuanshui.heatedloan.baseservice.form.CommonConfigForm;
import com.nuanshui.heatedloan.baseservice.vo.CommonConfigVO;
import com.nuanshui.heatedloan.pageable.Pager;

import java.util.List;

public interface CommonConfigService {

	/**
	 * 根据id获取某个配置
	 * @param 
	 * @author guohao
	 * @date 2016年3月21日 下午2:27:12
	 * @since 2.6.0
	 */
	CommonConfigVO load(String id);

	Pager<CommonConfigVO> list(Pager<CommonConfigVO> pager, CommonConfigForm commonConfigForm);


	void save(CommonConfigVO form);

	void update(CommonConfigVO form);

	void delete(String id);
	
	/**
	 * 根据配置的key获取一个配置对象
	 * @param 
	 * @author guohao
	 * @date 2016年3月21日 下午2:27:48
	 * @since 2.6.0
	 */
	CommonConfigVO loadByKey(String key);
	
	/**
	 * 根据配置的key获取所有的配置项
	 * @param 
	 * @author guohao
	 * @date 2016年3月21日 下午2:28:48
	 */
	List<CommonConfigVO> listByKey(String key);
	
	/**
	 * 根据配置的key获取所有值
	 * @param 
	 * @author guohao
	 * @date 2016年3月21日 下午2:45:37
	 */
	List<String> listValueByKey(String key);
	
	/**
	 * 根据配置的key获取某个值
	 * @param @param key
	 * @param @return
	 * @author guohao
	 * @date 2016年5月24日 下午4:35:24
	 * @since $
	 */
	String loadValueByKey(String key);
	
	/**
	 * 根据配置的key获取某个值
	 * @param @param key
	 * @param @return
	 * @author guohao
	 * @date 2016年5月24日 下午4:35:24
	 * @since $
	 */
	String loadValueByNameAndKey(String name, String key);
	
	
	List<String> listNameLikeValue(String value);

}
